#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <stdlib.h>

#define MAX 100
#define DEFAULT_SZ 3
#define INC_SZ 2


//先创建每个人信息的结构体
typedef struct Peoinfo
{
    char name[20];
    int age;
    char tel[12];
}Peoinfo;


//因为通讯录不仅要包含个人信息
//还需要记录人的数量，所以再创建通讯录的结构体
//静态版本
// typedef struct Contact
// {
//     Peoinfo data[MAX];//存放人的信息
//     int count;//人的个数
// }Contact;
//动态版本
typedef struct Contact
{
    Peoinfo* data;//存放人的信息
    int count;//人的个数
    int capacity;//当前通讯录的容量，当count=capacity时需要扩容
}Contact;


//初始化通讯录
int InitContact(Contact* pc);

//销毁通讯录
void DestoryContact(Contact* pc);

//添加通讯录成员
void AddContact(Contact* pc);
//打印通讯录成员
void ShowContact(const Contact* pc);
//删除成员
void DelContact(Contact* pc);
//查找指定通讯录成员
void SearchContact(Contact* pc);
//修改指定联系人
void ModifyContact(Contact* pc);
//排序联系人
void SortContact(Contact* pc);

//保存通讯录的信息到文件
void SaveContacr(const Contact* pc);
//加载文件中的信息到通讯录
void LoadContact(Contact* pc);